package Terminal.TechnicalServices.Foundation;
/**
 * Implementa il pattern GoF methodFactory in modo da rendere trasparente il fatto che 
 * un oggetto venga caricato in modo differente da un altro.
 * @author Gruppo 6
 *
 */
public abstract class FLoadFactory {

	protected InterfacceCondivise.FdbClientPrxHelper fdb;
	
	/**
	 * Crea un istanza del loadFactory in base al parametro classe
	 * @param classe
	 * @return
	 */
	public FLoadFactory getLoadFactory(Class classe)
	{
		FLoadFactory loadFactory;
		
		loadFactory = new FDefaultLoadFactory();
		
		if ( classe.equals(Terminal.Entity.Dominio.ETask.class) )
			loadFactory = new FTaskLoadFactory();
		
		return loadFactory;
	}
	
	public abstract Ice.Object load(String classe, int id);

}
